package entidades;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity
@Table(name="Clientes")
public class Cliente implements Serializable{
	@Id
	private int id;
	private String nombreEmpresa;
	@Enumerated(EnumType.STRING)
	private String condicionesVenta;
	private String descuento;
	private String tipoDeFacturaPorDefecto;
	private int ingBrutos;
	private String CUIT;
	private boolean ivaResponsableInscriptoPorDefecto;
	@Embedded
	private Direccion direccion;
	@OneToOne(cascade = CascadeType.ALL)
	@JoinColumn(name="idSucursal")
	private OficinaVenta sucursal;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNombreEmpresa() {
		return nombreEmpresa;
	}
	public void setNombreEmpresa(String nombreEmpresa) {
		this.nombreEmpresa = nombreEmpresa;
	}
	public String getCondicionesVenta() {
		return condicionesVenta;
	}
	public void setCondicionesVenta(String condicionesVenta) {
		this.condicionesVenta = condicionesVenta;
	}
	public String getDescuento() {
		return descuento;
	}
	public void setDescuento(String descuento) {
		this.descuento = descuento;
	}
	public String getTipoDeFacturaPorDefecto() {
		return tipoDeFacturaPorDefecto;
	}
	public void setTipoDeFacturaPorDefecto(String tipoDeFacturaPorDefecto) {
		this.tipoDeFacturaPorDefecto = tipoDeFacturaPorDefecto;
	}
	public int getIngBrutos() {
		return ingBrutos;
	}
	public void setIngBrutos(int ingBrutos) {
		this.ingBrutos = ingBrutos;
	}
	public String getCUIT() {
		return CUIT;
	}
	public void setCUIT(String cUIT) {
		CUIT = cUIT;
	}
	public boolean isIvaResponsableInscriptoPorDefecto() {
		return ivaResponsableInscriptoPorDefecto;
	}
	public void setIvaResponsableInscriptoPorDefecto(
			boolean ivaResponsableInscriptoPorDefecto) {
		this.ivaResponsableInscriptoPorDefecto = ivaResponsableInscriptoPorDefecto;
	}
	public Cliente() {
		super();
	}
	public Direccion getDireccion() {
		return direccion;
	}
	public void setDireccion(Direccion direccion) {
		this.direccion = direccion;
	}
	public Cliente(String nombreEmpresa, String condicionesVenta,
			String descuento, String tipoDeFacturaPorDefecto, int ingBrutos,
			String cUIT, boolean ivaResponsableInscriptoPorDefecto,
			Direccion direccion) {
		super();
		this.nombreEmpresa = nombreEmpresa;
		this.condicionesVenta = condicionesVenta;
		this.descuento = descuento;
		this.tipoDeFacturaPorDefecto = tipoDeFacturaPorDefecto;
		this.ingBrutos = ingBrutos;
		CUIT = cUIT;
		this.ivaResponsableInscriptoPorDefecto = ivaResponsableInscriptoPorDefecto;
		this.direccion = direccion;
	}
	public Cliente(int id, String nombreEmpresa, String condicionesVenta,
			String descuento, String tipoDeFacturaPorDefecto, int ingBrutos,
			String cuit, boolean ivaResponsableInscriptoPorDefecto,
			Direccion direccion, OficinaVenta sucursal) {
		super();
		this.id = id;
		this.nombreEmpresa = nombreEmpresa;
		this.condicionesVenta = condicionesVenta;
		this.descuento = descuento;
		this.tipoDeFacturaPorDefecto = tipoDeFacturaPorDefecto;
		this.ingBrutos = ingBrutos;
		CUIT = cuit;
		this.ivaResponsableInscriptoPorDefecto = ivaResponsableInscriptoPorDefecto;
		this.direccion = direccion;
		this.sucursal = sucursal;
	}
	public OficinaVenta getSucursal() {
		return sucursal;
	}
	public void setSucursal(OficinaVenta sucursal) {
		this.sucursal = sucursal;
	}
	
	/*public int consultaFrecuenciaDeVentas(){
		
	}
	
	public int consultaMontoDeFacturacion(){
		
	}*/
	
	
}
